Embodiments of the inventive concepts described herein relate to physically unclonable function (PUF) circuits and methods of performing key enrollment in PUF circuits.
Cryptographic keys (or simply “keys”) may be stored in electronic circuits, such as memory circuits. To prevent a key from being extracted by a physical attack, a circuit that stores the key may be configured to sense when a physical attack is occurring and to react to the attack by blocking the supply of power to the circuit or by destroying the circuit. The use of the sensors results in increasing process cost and may require the formation of new sub-channels in the circuit that may themselves be susceptible to attack. Current research is directed to the design of logic circuits that act like a fingerprint, i.e. digital circuits including logic implemented therein that generates keys without storing keys as data. PUF technology is representative of such approaches.
A PUF circuit is a circuit that takes advantage of the fact that wire delay and/or gate delay may differ slightly from one device to the next in the same circuit due to slight variations in process conditions during the manufacturing process. A PUF circuit may be implemented using small gate logic and may generate a random output. Delay differences due to variations in the process conditions may make it difficult to configure a circuit which has the same output value even if the PUF circuit is physically copied.
A PUF circuit may be classified as a ring oscillator type that uses a delay loop or an arbiter type that a switching circuit. Additionally, a PUF circuit may be implemented by using these two types together.
A PUF circuit is a small-sized circuit that is extremely difficult to duplicate. However, characteristics of the PUF circuit that make it unclonable may also make the circuit output different values due to slight variations in operating conditions. That is, the same characteristics of PUF circuits that make them difficult to clone also make them susceptible to generating incorrect output values. Adding error correction circuitry to a PUF circuit may help to prevent this phenomenon. However, doing so may result in adding additional circuitry to the PUF circuit and/or reducing the randomness of the data output by a PUF circuit.